#ifndef PRECESSION_H
#define PRECESSION_H

#include <math.h>
#include <wchar.h>  // 宽字符支持

#define rad (180 * 3600 / M_PI)  // 每弧度的角秒数

// IAU1976 岁差表
extern const double preceTab_IAU1976[];

// IAU2000 岁差表
extern const double preceTab_IAU2000[];

// P03 岁差表
extern const double preceTab_P03[];

// 岁差计算
double prece(double t, const char *sc, const char *mx);

// 返回 P03 黄赤交角，t 是世纪数
double hcjj(double t);

// J2000 赤道转 Date 赤道
void CDllr_J2D(double t, const double llr[3], const char *mx, double result[3]);

// Date 赤道转 J2000 赤道
void CDllr_D2J(double t, const double llr[3], const char *mx, double result[3]);

// 黄道球面坐标_J2000 转 Date 分点
void HDllr_J2D(double t, const double llr[3], const char *mx, double result[3]);

// 黄道球面坐标_Date 分点转 J2000
void HDllr_D2J(double t, const double llr[3], const char *mx, double result[3]);

#endif // PRECESSION_H